package net.csdn.business.common.domain.vo.discuss;

import com.alibaba.fastjson2.annotation.JSONField;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.annotation.JsonIgnore;
import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import net.csdn.business.common.constant.CommonConstants;
import net.csdn.business.common.domain.vo.SuperVO;

import java.io.Serializable;
import java.util.Date;
import java.util.LinkedList;
import java.util.List;


/**
 * @ClassName DiscussSearchVO
 * @Description Discuss对象VO
 * @Author zhangyl
 * @Date 2024/04/23 11:09
 */
@Data
@NoArgsConstructor
@AllArgsConstructor
public class DiscussSearchVO implements Serializable
{

    /** 组织ID/仓库ID； */
    //@JsonProperty(value = "id")
    private String id;

    /** 组织ID/仓库ID； */
    //@JsonProperty(value = "source_id")
    @JsonIgnore
    private String sourceId;

    /** 1:组织；2:仓库 */
   // @JsonProperty(value = "source_type")
    @JsonIgnore
    private Integer sourceType;

    /** serialNumber */
   // @JsonProperty(value = "serial_number")
    @JsonIgnore
    private Integer serialNumber;

    /** 标题 */
   // @JsonProperty(value = "title")
    private String title;

    /** 内容 */
   // @JsonProperty(value = "content")
    private String content;

    /** mdContent */
    //@JsonProperty(value = "md_content")
    private String mdContent;

    /** 是否锁定： 0-否; 1-是 */
    //@JsonProperty(value = "is_lock")
    @JsonIgnore
    private Integer isLock;

    /** 是否置顶： 0-否; 1-是 */
    //@JsonProperty(value = "is_pin")
    @JsonIgnore
    private Integer isPin;

    /** 是否在分类中置顶： 0-否; 1-是 */
    //@JsonProperty(value = "is_category_pin")
    @JsonIgnore
    private Integer isCategoryPin;

    /** 是否被关闭： 0-否; 1-是 */
    //@JsonProperty(value = "is_closed")
    @JsonIgnore
    private Integer isClosed;

    /** 是否采纳回答： 0-否; 1-是 */
   // @JsonProperty(value = "is_answered")
    @JsonIgnore
    private Integer isAnswered;

    /** discuss关联的标签id集合 */
    //@JsonProperty(value = "label")
    @JsonIgnore
    private List<String> label;

    /** 审核状态 */
    //@JsonProperty(value = "audit_status")
    @JsonIgnore
    private Integer auditStatus;

    /** 置顶时间 */
    //@JsonProperty(value = "pin_date")
    @JsonIgnore
    @JsonFormat(pattern = CommonConstants.DEFAULT_PATTERN, timezone = CommonConstants.DEFAULT_TIMEZONE)
    private Date pinDate;

    /** 所属分类置顶时间 */
    //@JsonProperty(value = "pin_category_date")
    @JsonIgnore
    @JsonFormat(pattern = CommonConstants.DEFAULT_PATTERN, timezone = CommonConstants.DEFAULT_TIMEZONE)
    private Date pinCategoryDate;

    /** 关闭时间 */
    //@JsonProperty(value = "closed_date")
    @JsonIgnore
    @JsonFormat(pattern = CommonConstants.DEFAULT_PATTERN, timezone = CommonConstants.DEFAULT_TIMEZONE)
    private Date closedDate;

    /** 评论总数 */
    //@JsonProperty(value = "comment_total")
    private Integer commentTotal;

    /** 回复总数 */
    //@JsonProperty(value = "reply_total")
    @JsonIgnore
    private Integer replyTotal;


    /** 点赞总数 */
    //@JsonProperty(value = "like_total")
    //@JsonIgnore
    private Integer likeTotal;


    /** 投票选项id */
    //@JsonProperty(value = "answer_id")
    @JsonIgnore
    private String answerId;

    /** 讨论所属分类id */
    //@JsonProperty(value = "category_id")
    @JsonIgnore
    private String categoryId;


    //@JsonProperty(value = "created_by")
    @JsonIgnore
    private String createdBy;

    //@JsonProperty(value = "created_date")
    @JsonFormat(pattern = CommonConstants.DEFAULT_PATTERN, timezone = CommonConstants.DEFAULT_TIMEZONE)
    private Date createdDate;

    private String targetUrl;

    private String nameWithNamespace;

    private String pathWithNamespace;

}
